package com.linq.cool.beauty.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.linq.cool.api.domain.BeautyMember;
import com.linq.cool.api.dto.BeautyMemberBindDTO;
import com.linq.cool.api.dto.BeautyMemeberRegisterDTO;
import com.linq.cool.beauty.dto.*;

/**
 * @Author: yqlin
 * @Date: 2021/1/30 21:16
 * @Description:
 * @Version: 1.0.0
 */
public interface BeautyMemberService extends IService<BeautyMember> {

    /**
     * 根据openid查询客户信息
     *
     * @param openId openid
     *
     * @return
     */
    BeautyMember getByOpenId(String openId);

    /**
     * 绑定客户手机号
     *
     * @param dto
     *
     * @return BeautyMember
     */
    BeautyMember bineMember(BeautyMemberBindDTO dto);

    /**
     * 条件分页查找客户信息
     *
     * @param page 分页对象
     * @param dto  查询条件
     *
     * @return 结果
     */
    IPage<BeautyMember> listByPage(IPage<BeautyMember> page, BeautyMemberQueryDTO dto);

    /**
     * 新增客户
     *
     * @param dto
     *
     * @return
     */
    boolean saveMember(BeautyMemberDTO dto);

    /**
     * 修改客户
     *
     * @param dto
     *
     * @return
     */
    boolean updateMember(BeautyMemberDTO dto);

    /**
     * 现金充值
     *
     * @param dto
     *
     * @return
     */
    boolean topUpWithCash(BeautyMemberTopUpDTO dto);

    /**
     * 现金退款
     *
     * @param dto
     *
     * @return
     */
    boolean refundWithCash(BeautyRefundDTO dto);

    /**
     * 前台注册
     *
     * @param dto
     *
     * @return
     */
    boolean frontRegister(BeautyMemeberRegisterDTO dto);

    /**
     * 完善客户信息
     *
     * @param dto
     *
     * @return
     */
    boolean perfectMemberInfo(BeautyMemberModifyDTO dto);
}
